---@class gpio
---https://nodemcu.readthedocs.io/en/release/modules/gpio
gpio = {}
local pulse = {}
---
---@param
---@return nil
function gpio.mode()
end

---
---@param
---@return nil
function gpio.read()
end

---
---@param
---@return nil
function gpio.serout()
end

---建立或清除一个在引脚中断时运行的回调函数。如果GPIO_INTERRUPT_ENABLE在编译时未定义，则此函数不可用。
---@param pin number @范围0-12
---@param type string @“up”、“down”、“both”、“low”、“high”，分别表示上升边、下降边、双边、低电平和高电平触发模式。如果类型是"none"或省略，则回调函数被删除，中断被禁用。
---@param callback fun(level:number,when:number,eventCount:number):void 触发时的回调函数。作为第一个参数传递给回调函数的中断时指定引脚的级别。事件的时间戳作为第二个参数传递。这是以微秒为单位的，并且具有与tmr.now()相同的基数。这个时间戳是在中断级别获取的，比在回调函数中获取时间更一致。这个时间戳通常是检测到的第一个中断的时间戳，但是，在重载条件下，可能是后一个。事件计数是该回调所省略的中断数。这对于边触发中断最有效，并支持边的计数。但是，要注意开关反弹——一个开关闭合可能会产生多个脉冲。计数工作最好的时候，边缘是数字生成。如果省略了前一个回调函数，将使用它。
---@return nil
function gpio.trig(pin, type, callback)
end

---
---@param
---@return nil
function gpio.write()
end

---
---@param
---@return nil
function pulse.build()
end

---
---@param
---@return nil
function pulse:start()
end

---
---@param
---@return nil
function pulse:getstate()
end

---
---@param
---@return nil
function pulse:stop()
end

---
---@param
---@return nil
function pulse:cancel()
end

---
---@param
---@return nil
function pulse:adjust()
end

---
---@param
---@return nil
function pulse:update()
end
